/**
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. <br/>
 * 描述: TODO <br/>
 *
 * @author framework generator
 * @date 2022年02月22日
 * @version 2.0
 */
package com.icinfo.cloud.provider.punish.mapper;

import com.icinfo.cloud.provider.punish.dto.CaseReasonQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CaseReasonMainRecord;
import com.icinfo.cloud.provider.punish.vo.CaseMainRepeatVo;
import com.icinfo.framework.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * 描述: 案件案由记录表 case_reason_main_record 对应的Mapper接口.<br>
 *
 * @author framework generator
 * @date 2022年02月22日
 */
public interface CaseReasonMainRecordMapper extends Mapper<CaseReasonMainRecord> {

    /**
     * 根据案由编码及当事人获取1年内重复违法次数
     * @param queryDto
     * @return
     */
    int selectCaseMainCountByReasonCodeAndParty(CaseReasonQueryDto queryDto);

    /**
     * 根据案由编码及当事人获取1年内重复违法列表
     * @param queryDto
     * @return
     */
    List<CaseMainRepeatVo> selectCaseMainListByReasonCodeAndParty(CaseReasonQueryDto queryDto);

    /**
     * 描述： 根据当事人获取1年内全部违法列表
     *
     * @author: zhengqiang
     * @date: 2022/6/24
     * @param: queryDto
     * @return {@link List< CaseMainRepeatVo>}
     **/
    List<CaseMainRepeatVo> selectCaseMainListByParty(CaseReasonQueryDto queryDto);

    /**
     * 根据案由编码及当事人获取2年内重复违法列表（立案通过）
     * @param queryDto
     * @return
     */
    List<CaseMainRepeatVo> selectIllegalTimesByReasonCodeAndParty(CaseReasonQueryDto queryDto);

    /**
     * 描述： 根据当事人获取2年内全部违法列表（立案通过）
     *
     * @param: queryDto
     * @return {@link List< CaseMainRepeatVo>}
     **/
    List<CaseMainRepeatVo> selectIllegalTimesByParty(CaseReasonQueryDto queryDto);

    /**
     * 描述： 根据当事人获取2年内全部责令改正文书列表（立案通过）
     *
     * @param: queryDto
     * @return {@link List< CaseMainRepeatVo>}
     **/
    List<CaseMainRepeatVo> selectOrderCorrectionTimesByParty(CaseReasonQueryDto queryDto);

    /**
     * 根据案由编码及当事人获取N年内重复违法次数（立案通过即算）
     *
     * @param: queryDto
     **/
    int getIllegalTimesCountByReasonCodeAndParty(CaseReasonQueryDto queryDto);

}